home *** CD-ROM | disk | FTP | other *** search
/ Celestin Apprentice 2 / Apprentice-Release2.iso / Source Code / C++ / Libraries / Two Way Notes / two_way_node.cp < prev    next >
Encoding:
Text File  |  1994-04-24  |  2.4 KB  |  88 lines  |  [TEXT/KAHL]

  1. his code for any purpose, as long as you
  2. // send me
  3. // a) source of the modified code.
  4. // b) licenced version of product the code is used in.
  5. // c) notes as to how the code could be made more usefull if you tried to use it, but
  6. // ended up not using it for any reason.
  7. // Hasan Edain
  8. // HasanEdain@AOL.com
  9. // box 667 Langley Wa 98260
  10. // fax: 206-579-6456
  11.  
  12. #include <stdlib.h>
  13. #include <string.h>
  14.  
  15. #include "two_way.h"
  16.  
  17. #include "monster.h"
  18.  
  19.  
  20. /*************************node::fillNode*********************************/
  21. void node::fillNode(node *Prev,node *Next, void *Data,unsigned long DataLength, short DataKey)
  22. {
  23. data = malloc(DataLength);
  24. dataLength = DataLength;
  25. next = Next;
  26. prev = Prev;
  27. memcpy( data, Data, dataLength );
  28. dataKey = DataKey;
  29. }
  30.  
  31. /*************************node::getData*********************************/
  32. void *node::getData(void)
  33. {
  34. return (data);
  35. }
  36.  
  37. /*************************node::getDataKey*********************************/
  38. short node::getDataKey(void)
  39. {
  40. return(dataKey);
  41. }
  42.  
  43. /*************************node::getDataLength*********************************/
  44. unsigned long node::getDataLength(void)
  45. {
  46. return(dataLength);
  47. }
  48.  
  49. /*************************node::getNextNode*********************************/
  50. node *node::getNextNode(void)
  51. {
  52. return(next);
  53. }
  54.  
  55. /*************************node::getPrevNode*********************************/
  56. node *node::getPrevNode(void)
  57. {
  58. return(prev);
  59. }
  60.  
  61. /*************************node::setNextNode*********************************/
  62. void node::setNextNode(node *theNode)
  63. {
  64. next = theNode;
  65. }
  66.  
  67. /*************************node::setPrevNode*********************************/
  68. void node::setPrevNode(node *theNode)
  69. {
  70. prev = theNode;
  71. }
  72.  
  73. /*************************node::deleteNode*********************************/
  74. void node::deleteNode(void)
  75. {
  76. free(data);
  77.  
  78. if(prev->next != next)
  79.     {
  80.     prev->next = next;
  81.     }
  82. if(next->prev != prev)
  83.     {
  84.     next->prev = prev;
  85.     }
  86.     
  87. delete this;
  88. }